package rdd.sparksql;

import org.apache.spark.rdd.RDD;
import org.apache.spark.sql.*;

public class SparkSQL106_DataTransform {
    public static void main(String[] args) {
        final SparkSession sparkSession = SparkSession.builder()
                .master("local[*]")
                .appName("SparkSQL")
                .getOrCreate();

        final Dataset<Row> ds = sparkSession.read().json("data/user.json");
        ds.createOrReplaceTempView("user");
        ds.show();
        //Dataset和rdd转换
        RDD<Row> rdd = ds.rdd();
        //可以使用其他的类型代替row，可以方便取值
        final Dataset<User> userDataset = ds.as(Encoders.bean(User.class));//将dataset的泛型改成user

        userDataset.createOrReplaceTempView("us");
        userDataset.show();

        userDataset.foreach((User user) -> {
                    System.out.println(user.getName());
                }
        );
    }
}
